import request from '@/config/axios'

export interface UserVO {
  id: number // 用户编号
  subUser: boolean // 是否子账号
  username: string // 用户名称
  nickname: string // 用户昵称
  jobCode: string // 工号
  remark: string // 备注
  deptId: number // 部门ID
  deptName: string // 部门名称
  postIds: number[] // 职称编号数组
  email: string // 用户邮箱
  mobile: string // 手机号码
  identity: string // 身份证号
  sex: number // 用户性别
  avatar: string // 用户头像
  status: number // 状态
  workingStatus: number // 状态
  loginIp: string // 最后登录IP
  loginDate: number // 最后登录时间
  createTime: number // 创建时间
  isMentor: boolean // 是否导师
  mentorPhoto: string // 导师照片
  imrStatus: number // 金属所当前状态

  wybs?: string // 唯一标识
  dsgh?: string // 导师工号
  xm?: string // 姓名
  xbm?: string // 性别
  gjdqm?: string // 国籍/地区
  mzm?: string // 民族
  sfzjlxm?: string // 身份证件类型
  sfzh?: string // 身份证
  csrq?: string // 出生日期出生日期
  sfxwds?: string // 是否校外导师
  dslbm?: string // 导师类别
  dslxm?: string // 导师类型
  zcm?: string // 职称
  zcjbm?: string // 职称级别
  zyyjfx?: string // 主要研究方向
  rsdny?: string // 任硕导年月
  rbdny?: string // 任博导年月
  xwdsszdw?: string // 校外导师所在单位
  jzgdqztm?: string // 导师当前状态
  wyyzm?: string // 外语语种
  wyslcdm?: string // 外语熟练程度
  zgxlm?: string // 最高学历
  byny?: string // 毕业年月
  byxx?: string // 毕业学校
  byzym?: string // 毕业专业
  zgxwm?: string // 最高学位
  syxwny?: string // 授予学位年月
  syxwxx?: string // 授予学位学校
  syxwzy?: string // 授予学位专业
  gyzgxw?: string // 国外最高学位
  gwsyxwsj?: string // 国外授予学位时间
  gwsyxwxx?: string // 国外授予学位学校
  gwshxwzy?: string // 国外所获学位专业
  xzzw?: string // 行政职务
  sfzs?: string // 是否招生
  zcpdsj?: string // 职称评定时间
  sfwjds?: string // 是否外兼导师
  rsszdw?: string // 人事所在单位
  yddh?: string // 移动电话
  dzyj?: string // 电子邮件
  dwdh?: string // 单位电话
  zzdh?: string // 住宅电话
  gzdw?: string // 工作单位
  txdz?: string // 通信地址
  yzbm?: string // 邮政编码
  cz?: string // 传真
  zyshxwttjz?: string // 主要社会学术团体兼职
  grjj?: string // 个人简介
  zykygzycj?: string // 主要科研工作与成绩
  bz?: string // 备注
  hxwsj?: string // 获学位时间
  sfzzdszg?: string // 是否终止导师资格
  rsgxszdwsfbx?: string // 人事关系所在单位是否本校
  syxwxxdm?: string // 授予学位学校代码
  zjlxm?: string // 专家类型

  recruitMajor: string // 招生专业
}

export interface UserSystemMessageReqVO {
  message: string // 消息内容
  method: string[] // 发送方式
  userIds: number[] // 接收Ids
}

// 查询用户管理列表
export const getUserPage = (params: PageParam) => {
  return request.get({ url: '/system/user/page', params })
}

// 查询用户管理列表
export const getUserSelectPage = (params: PageParam) => {
  return request.get({ url: '/system/user/select-page', params })
}

// 查询所有用户列表
export const getAllUser = () => {
  return request.get({ url: '/system/user/all' })
}

// 查询用户详情
export const getUser = (id: number) => {
  return request.get({ url: '/system/user/get?id=' + id })
}

// 新增用户
export const createUser = (data: UserVO) => {
  return request.post({ url: '/system/user/create', data })
}

// 新增任课教师用户(签到模块使用)
export const createTeacherUser = (data: UserVO) => {
  return request.post({ url: '/system/user/create-teacher', data })
}

// 新增课代表用户(签到模块使用)
export const createAssistantUser = (data: UserVO) => {
  return request.post({ url: '/system/user/create-assistant', data })
}

// 修改用户
export const updateUser = (data: UserVO) => {
  return request.put({ url: '/system/user/update', data })
}

// 删除用户
export const deleteUser = (id: number) => {
  return request.delete({ url: '/system/user/delete?id=' + id })
}

// 导出用户
export const exportUser = (params) => {
  return request.download({ url: '/system/user/export', params })
}

// 下载用户导入模板
export const importUserTemplate = () => {
  return request.download({ url: '/system/user/get-import-template' })
}

// 用户密码重置
export const resetUserPwd = (id: number, password: string) => {
  const data = {
    id,
    password
  }
  return request.put({ url: '/system/user/update-password', data: data })
}

// 用户状态修改
export const updateUserStatus = (id: number, status: number) => {
  const data = {
    id,
    status
  }
  return request.put({ url: '/system/user/update-status', data: data })
}

// 获取用户精简信息列表
export const getSimpleUserList = (): Promise<UserVO[]> => {
  return request.get({ url: '/system/user/simple-list' })
}

// 教师变导师
export const evolveUserToMentor = (data: Partial<UserVO>) => {
  return request.put({ url: '/system/user/evolve', data })
}

// 导师变教师
export const degenerateMentorToUser = (data: Partial<UserVO>) => {
  return request.put({ url: '/system/user/degenerate', data })
}

// 立即同步导师
export const syncMentorNow = () => {
  return request.get({ url: '/core/mentor/sync-now' })
}

// 获得导入修改研究部模板
export const importUserDeptTemplate = () => {
  return request.download({ url: '/system/user/get-import-dept-template' })
}

// 异步发送系统消息
export const sendSystemMessage = (data: UserSystemMessageReqVO) => {
  return request.post({ url: `/system/user/send-system-message`, data })
}

// 获得导入修改招生专业模板
export const importRecruitMajorTemplate = () => {
  return request.download({ url: '/system/user/get-import-recruit-major-template' })
}
